# 导入模块
from wxpy import *

# 导入消息撤回模块
from xml.etree import ElementTree as ETree

# 初始化机器人  扫码登录
bot = Bot(cache_path=True)

# 向文件传输助手发送消息
bot.file_helper.send("机器人已启动")

# 设置好友消息防撤回
@bot.register(Friend, NOTE, False)
def get_revoked(msg):
    print("当前有系统提示", msg)

    # 检查NOTE中是否有撤回信息
    revoked = ETree.fromstring(msg.raw['Content']).find('revokemsg')
    # 判断是否是撤回消息类型
    if revoked:
        # 拿到被撤回消息导具体内容
        # 根据找到的撤回消息id找到bot.messages中的原消息
        revoked_msg = bot.messages.search(id=int(revoked.find('msgid').text))[0]
        # 找到消息的发送者
        # 原发送者（群聊时为群员）
        sender = msg.member or msg.sender
        # 把消息转发导文件传输助手
        revoked_msg.forward(
            bot.file_helper,
            prefix='{}撤回了:'.format(sender.name)
        )

# 仅仅堵塞线程
bot.join()
